package java学习.美团笔试;

import java.util.Arrays;
import java.util.Scanner;

/**
 * **************
 * 项目名称: 蓝桥杯 <br/>
 * 文件名称:  <br/>
 * 文件描述: 这里添加您的类文件描述，说明当前文件要包含的功能。 <br/>
 * 文件创建：刘世锦 <br/>
 * 创建时间: 2022/5/7 <br/>
 *
 * @version v1.0 <br/>
 * @update [序号][日期YYYY-MM-DD][更改人姓名][变更描述]<br/>
 * *************
 */
public class test {
/**
 *     题目描述
 *             幸运数字至少满足以下两个特征中的一种
 * 1.数字是11的数倍
 * 2.数字中至少包含两个1
 *     小美现在给你若干的数字，希望你回答这个数字是不是幸运数字。
 *     输入描述：
 *     第一行一个数字n，表示小美有n组询问
 *     接下来每一行一个正整数表示小美询问的数字。
 *     数据保证1<=n<=500,每个询问的数字在【1，1e9】范围内
 *     样例输入：
 *             2
 *             22
 *             1234
 *     样例输出：
 *             yes
 *             no
 */
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    while (sc.hasNext()){
        int s = sc.nextInt();
        if (((s % 11) == 0) || testint(s)>=2){
            System.out.println("yes");
        }else {
            System.out.println("no");
        }
    }
}

    private static int testint(int s) {
    int res=0;
     while (s>0){
        if (s%10==1){
            res++;
        }
        s/=10;
    }
     return res;
    }


    private static int oneCount(int num) {
        int res=0;
        while (num>0){
            int remain=num%10;
            if(remain==1)res++;
            num=num/10;
        }
        return res;
    }

     static class Main{
//    小美现在有一个序列，序列中包含1和-1两种数字。小美现在想要知道，有多少个连续的子序列，序列中的数字乘积为正
//         输入描述：
//         第一行一个正整数n，表示小美手中的序列长度。
//         第二行n个空格隔开的数字，每个数字只能是1和-1中的一种。
//         对于80%的数据保证1<=n<=500
//         对于剩余的20%的数据保证1<=n<=5000
//
//         输出描述：
//         一行一个正整数表示有多少连续的子序列满足题目要求。

         public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            in.nextLine();
            //将输入放入转换为数组
            String s = in.nextLine();
            String[] arrS = s.split(" ");
            int[] nums=new int[n];
            for (int i = 0; i < n; i++) {
                nums[i]=Integer.parseInt(arrS[i]);
            }
            //计算前缀和，所有负数
            int[] preNegative=new int[n+1];
            for (int i = 1; i <= n; i++) {
                if(nums[i-1]==-1)preNegative[i]=preNegative[i-1]+1;
                else preNegative[i]=preNegative[i-1];
            }
            //双层循环计算一红有多少个序列
            int res=0;
            for (int i = 0; i < n; i++) {
                for (int j = i; j <n ; j++) {
                    int count=preNegative[j+1]-preNegative[i];
                    if(count%2==0)res++;
                }
            }
            System.out.println(res);
        }
    }

     static class Main1{
//    点菜
//         输入描述：
//         第一行两个正整数n,m
//         n表明有多少顾客前来点菜，m表示小美现在能做的菜的编号范围在【1，m】，
//         接下来的n行，每行两个数字，表明一名顾客的所点的两道菜的编号。
//         前80%数据保证2<=n<=10,2<=m<=20
//         剩余的80%数据保证2<=n<=20,2<=m<=40
//         输出描述：
//         一行一个正整数表示最多有多少顾客可以满意

         public static int res=0;
        public static int[][] arr;
        public static int[] flag;
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            int m=in.nextInt();
            //存储顾客分别想要点的2道菜
            arr=new int[n][2];
            for (int i = 0; i < n; i++) {
                arr[i][0]=in.nextInt();
                arr[i][1]=in.nextInt();
            }
            //标记数字
            flag=new int[m+1];
            Arrays.fill(flag,1);
            int cnt=m/2; //最多可以满意的顾客数
            dfs(0,0,cnt,n);
            System.out.println(res);
        }

        //当前顾客数  已选择的人数
        private static void dfs(int guest, int sum,int cnt,int n) {
            if(sum<=cnt) {
                res=Math.max(res,sum); //更新可选的最大的人数
            } else {
                return;
            }
            for (int i = guest; i < n; i++) {
                int x1=arr[i][0],x2=arr[i][1];
                if(flag[x1]==0||flag[x2]==0)continue;
                flag[x1]--;flag[x2]--;
                //选择进行递归
                sum++;
                dfs(guest+1,sum,cnt,n);
                sum--;
                flag[x1]++;flag[x2]++;
            }
        }
    }

}
